Stomp Protocol ব্যবহার করে Real-time Communication

Java Technologies - স্প্রিং বুট ক্লায়েন্ট (Spring Boot Client) - Spring Boot এবং WebSocket Client Integration
131

Spring Boot Client ব্যবহার করে STOMP (Simple Text Oriented Messaging Protocol) প্রটোকল মাধ্যমে রিয়েল-টাইম কমিউনিকেশন সেটআপ করার জন্য আপনাকে কিছু নির্দিষ্ট ধাপ অনুসরণ করতে হবে। STOMP সাধারণত WebSocketের সাথে ব্যবহার করা হয়, যা একটি টেক্সট-বেসড মেসেজিং প্রোটোকল এবং রিয়েল-টাইম কমিউনিকেশন অ্যাপ্লিকেশনগুলোতে কার্যকরী।

এখানে একটি সাধারণ উদাহরণ দেওয়া হচ্ছে যা Spring Boot অ্যাপ্লিকেশনে STOMP প্রটোকল ব্যবহার করে WebSocket কনফিগার এবং ক্লায়েন্ট তৈরি করার জন্য প্রযোজ্য।

১. Spring Boot Server Side (WebSocket Configuration)

প্রথমত, Spring Boot এর WebSocket সার্ভার কনফিগার করতে হবে।

1.1 WebSocket Configuration ক্লাস তৈরি করুন

import org.springframework.context.annotation.Configuration;
import org.springframework.messaging.simp.config.MessageBrokerRegistry;
import org.springframework.web.socket.config.annotation.EnableWebSocketMessageBroker;
import org.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurer;

@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {

    @Override
    public void configureMessageBroker(MessageBrokerRegistry config) {
        // "/topic" prefix will be used for broadcast messages
        config.enableSimpleBroker("/topic");
        // "/app" prefix will be used for client messages
        config.setApplicationDestinationPrefixes("/app");
    }

    @Override
    public void registerStompEndpoints(StompEndpointRegistry registry) {
        // "/gs-guide-websocket" is the endpoint to connect with the WebSocket
        registry.addEndpoint("/gs-guide-websocket").withSockJS();
    }
}

1.2 Controller ক্লাস তৈরি করুন

এখন, আপনাকে একটি @MessageMapping ব্যবহার করে WebSocket এর মাধ্যমে মেসেজ হ্যান্ডল করার জন্য একটি কন্ট্রোলার তৈরি করতে হবে।

import org.springframework.messaging.handler.annotation.MessageMapping;
import org.springframework.messaging.simp.SimpMessagingTemplate;
import org.springframework.stereotype.Controller;

@Controller
public class MessageController {

    private final SimpMessagingTemplate messagingTemplate;

    public MessageController(SimpMessagingTemplate messagingTemplate) {
        this.messagingTemplate = messagingTemplate;
    }

    @MessageMapping("/hello")
    public void handleMessage(String message) {
        // Broadcasting message to all connected clients
        messagingTemplate.convertAndSend("/topic/greetings", "Hello, " + message);
    }
}

২. Spring Boot Client Side (STOMP Client)

Spring Boot ক্লায়েন্ট সাইডে STOMP প্রটোকল ব্যবহার করতে হলে, JavaScript এবং SockJS লাইব্রেরি ব্যবহার করে WebSocket কানেকশন তৈরি করতে হবে।

2.1 HTML এবং JavaScript ক্লায়েন্ট তৈরি করুন

<!DOCTYPE html>
<html>
<head>
    <title>STOMP WebSocket Example</title>
    <script src="https://cdn.jsdelivr.net/npm/sockjs-client@1.5.0/dist/sockjs.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/stompjs@2.3.3/dist/stomp.min.js"></script>
</head>
<body>
    <div>
        <h1>Spring Boot WebSocket Client</h1>
        <input type="text" id="name" placeholder="Enter your name" />
        <button onclick="sendMessage()">Send Message</button>
        <div id="greetings"></div>
    </div>

    <script type="text/javascript">
        var stompClient = null;

        // Connect to WebSocket endpoint
        function connect() {
            var socket = new SockJS('/gs-guide-websocket'); // WebSocket connection URL
            stompClient = Stomp.over(socket);
            stompClient.connect({}, function (frame) {
                console.log('Connected: ' + frame);
                stompClient.subscribe('/topic/greetings', function (greeting) {
                    showGreeting(greeting.body);
                });
            });
        }

        // Send message to the server
        function sendMessage() {
            var name = document.getElementById("name").value;
            stompClient.send("/app/hello", {}, name);
        }

        // Display received greeting message
        function showGreeting(message) {
            var response = document.getElementById("greetings");
            response.innerHTML = message;
        }

        // Initiate the connection
        connect();
    </script>
</body>
</html>

৩. Running the Application

এখন আপনার Spring Boot অ্যাপ্লিকেশন রান করতে পারবেন এবং HTML ক্লায়েন্ট ব্যবহার করে রিয়েল-টাইম কমিউনিকেশন পরীক্ষা করতে পারবেন।

  1. প্রথমে Spring Boot অ্যাপ্লিকেশন রান করুন।
  2. তারপর, HTML ফাইলটি ব্রাউজারে ওপেন করুন।
  3. একটি নাম লিখে "Send Message" বোতামে ক্লিক করুন, এবং ক্লায়েন্টটি রিয়েল-টাইমে সার্ভার থেকে একটি গ্রিটিং মেসেজ পাবে।

এই উদাহরণটি STOMP এবং WebSocket ব্যবহার করে Spring Boot অ্যাপ্লিকেশন এ রিয়েল-টাইম মেসেজিং কিভাবে কাজ করে, তা দেখায়।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...